Oracle建表并指定主键自增 您所在的位置:网站首页 oracle sql建表语句 Oracle建表并指定主键自增

Oracle建表并指定主键自增

2023-09-01 11:59| 来源: 网络整理| 查看: 265

Oracle不允许在建表时直接指定某个字段自增,需要通过建立序列

所以想要为某个字段指定自增,需要1.建表;2.建立序列;3.建立触发器

一:建表语句

Oracle数据库建表语句

ORACLE中的关键字这里均用大写表示,中括号表示可选填或不填

CREATE TABLE  表名 (     字段名1  字段类型 【NULL  |   NOTNULL  】【PRIMARY KEY①】,

    字段名2  字段类型 【NULL  |   NOTNULL  】② ); ①:oracle可以通过在末尾写PRIMARY KEY(列名)的方式指定某一个列为主键。

②:oracle常用字段类型number,表示数字,可以存放整数或者小数,

       number(N)表示存放N位的整数,number(N,M)表示存放长度为N的小数,精确到M位,含小数点

       varchar/varchar2,二者区别读者自己百度,这里不做详解。

       date 日期类型,timestamp 时间戳类型

注意,oracle中没有int和integer类型。

示例语句如下:create table student (     s_id number(11) not null primary key,     name varchar(20) not null,     age number(6) not null,     record_data date );

为字段添加注释

comment on column student.s_id is '学生表ID';

comment on column student.name is '学生名称';

comment on column student.age is '学生年龄';

comment on column student.record_data is '记录时间';

二、建立自增序列

CREATE SEQUENCE 序列名 -- 建议使用表名+字段名+seq后缀

INCREMENT BY 1 -- 每次加几个

START WITH 1 -- 从1开始计数

NOMAXVALUE -- 不设置最大值

NOCYCLE -- 一直累加,不循环

NOCACHE -- 不建缓冲区

三、建立触发器

CREATE TRIGGER 触发器名

   BEFORE INSERT 表名  FOR EACH ROW WHEN (NEW.主键名  IS  NULL)

BEGIN

   SELECT 序列名.NEXTVAL INTO:NEW.主键名 FROM DUAL;

END;

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有